#ifndef GAMEENGINE_GEOMETRY_COORDS2D_H
#define GAMEENGINE_GEOMETRY_COORDS2D_H

#include <GameEngine/Geometry/geometry_settings.h>


#ifdef GAMEENGINE_NAMESPACES
namespace GameEngine {
#endif

//! Class used to represent 2D coordinates
template <class T>
class Coords2d {

public:
	Coords2d();
	Coords2d(const T& u, const T& v);
	Coords2d(const Coords2d& rhs);
	virtual ~Coords2d();
	Coords2d& operator=(const Coords2d& rhs);

	const T& u() const;
	T& u();
	const T& v() const;
	T& v();

protected:
	//! First parametric coordinate
	T u_;

	//! Second parametric coordinate
	T v_;
};

#ifdef GAMEENGINE_NAMESPACES
} // namespace GameEngine
#endif

#include <GameEngine/Geometry/Core/coords2d.hpp>

#endif
